package tencent_practice;

/**
 * 成功
 * 给你一个正整数 n ，生成一个包含 1 到 n2 所有元素，且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。
 */
public class Tencent_59_generateMatrix {
    public static int[][] makeMatrix(int n) {
        int[][] matrix = new int[n][n];
        int i = 0;
        int index = 1;
        int count = (n + 1) / 2;
        while (i < count) {
            for (int x = i; x < n - i; x++) {
                matrix[i][x] = index++;
            }
            for (int x = i + 1; x < n - i; x++) {
                matrix[x][n - i - 1] = index++;
            }
            for (int x = n - 2 - i; x >= i && (n - i - 1) != i; x--) {
                matrix[n - i - 1][x] = index++;
            }
            for (int x = n - i - 2; x >= (i + 1) && (n - i - 1) != i; x--) {
                matrix[x][i] = index++;
            }
            i++;
        }
        return matrix;
    }

//    public static int[][] generateMatrix(int n) {
//        int[][] matrix = makeMatrix(n);
//        int[][] res = new int[n][n];
//        for (int i = 0; i < n; i ++) {
//            int[] curr = new int[n];
//            for (int j = 0; j < n; j++) {
//                curr[j] = matrix[i][j];
//            }
//            res[i] = curr;
//        }
//        return res;
//    }

//    public static void main(String[] args) {
//        int[][] ints = generateMatrix(3);
//        for (int i = 0; i < 3; i++) {
//            System.out.print(ints[i].toString());
//        }
//    }
}
